using System;
using System.Collections.Generic;
using System.Text;

namespace AUSRIS.Reports.Utilities.Deployment.FileSystem.SVNAdapter
{
    /// <summary>
    /// Object to hold the SVN settings
    /// </summary>
    public class SVNInfo
    {
        private static readonly char defaultEntriesDelimiter = '';

        #region Private Fields

        private string workingFolder;
        private char entriesDelimiter = defaultEntriesDelimiter;
        private string repositoryUrl;
        private string svnDirectoryName;
        private string username;
        private string password;

        #endregion

        #region Public Properties

        /// <summary>
        /// Gets or sets the path to the working folder where the files will be checked out
        /// </summary>
        public string WorkingFolder
        {
            get
            {
                return this.workingFolder;
            }
            set
            {
                workingFolder = value;
            }
        }

        /// <summary>
        /// Gets or sets the character used to delimit the individual entries in the entries file, usually ''
        /// </summary>
        public char EntriesDelimiter
        {
            get
            {
                return entriesDelimiter;
            }
            set
            {
                entriesDelimiter = value;
            }
        }

        /// <summary>
        /// Gets or sets the base url of the repository.
        /// This should include the full path to the level where the actual Branch folders are stored.
        /// </summary>
        public string RepositoryUrl
        {

            get
            {
                return repositoryUrl;
            }
            set
            {
                repositoryUrl = value;
            }
        }

        /// <summary>
        /// Gets or sets the name of the SVN administration directories (.svn or _svn, depending on local settings)
        /// </summary>
        public string SvnDirectoryName
        {
            get
            {
                return svnDirectoryName;
            }
            set
            {
                svnDirectoryName = value;
            }
        }

        /// <summary>
        /// Gets or sets the Username to log into subversion
        /// </summary>
        public string Username
        {
            get
            {
                return username;
            }
            set
            {
                username = value;
            }
        }

        /// <summary>
        /// Gets or sets the Password to log into subversion
        /// </summary>
        public string Password
        {
            get
            {
                return password;
            }
            set
            {
                password = value;
            }
        }

        #endregion
    }
}